package mapper;

import bo.UserBO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 注意：
 * 增删改的返回值是受影响的行数 int
 * 所有的增删改操作都需要提交事务
 * 接口所有的普通参数类型，尽量都写上@Param参数，尤其是多个参数时，必须写上
 * 参数传入能用#{}就用#{}
 */

public interface UserMapper {

    /**插入用户*/
    int insertUser(UserBO userBO);

    /**查询全部用户 select*/
    List<UserBO> getUserList();

    /**根据id查询用户*/
    UserBO getUserById(@Param("id") String id);

    /**多个查询条件，根据name和pwd查询用户，使用 @Param 传参*/
    UserBO getUserByNameAndPwd(@Param("name") String name,@Param("pwd") String pwd);

    /**多个查询条件，根据name和age查询用户，使用 BO(对象)传参*/
    UserBO getUserByNameAndAge(UserBO userBO);

    /**多个查询条件，根据name和id查询用户，使用 Map 传参*/
    UserBO getUserByNameAndId(Map<String,String> map);

    /**模糊匹配，根据姓查询用户*/
    List<UserBO> getUserByName(@Param("name") String name);

    /**更新用户*/
    int updateUserById(UserBO userBO);

    /**删除用户*/
    int deleteUser(@Param("id") String id);







}
